<?php

namespace app\index\controller;

class UploadFile
{
    public function uploadPolicyFile()
    {

        // header("Access-Control-Allow-Origin:*");
        // header("Access-Control-Allow-Methods:GET,POST,OPTIONS");
        // header("Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept");
        //提前声明返回数据
        $return_data = array();

        //传入缺省检验
        if (request()->file('policyFile')) {
            //定义$policyFile变量接收前端传来的文件
            $policyFile = request()->file('policyFile');

            //接收文件附属信息（即文件额外的信息）
            // $fileName = request()->post()['fileName'];

            //存储文件，定义$info参数检验存储是否成功
            //validate方法，限制文件大小、后缀名
            //move方法，第一项参数为路径，第二项参数为自定义的文件名，第三项参数为是否同名覆盖
            $info1 = $policyFile->validate(['size' => 10548576, 'ext' => 'pdf'])->move('../public/applicationForm', time() . $policyFile->getInfo()['name'], false); //上传目录
            if ($info1) {
                // 成功上传后 获取上传信息

                // // 输出 文件扩展名
                // echo $info1->getExtension();

                // // 输出 大概的文件路径
                // echo $info1->getSaveName();

                // // 输出 文件名.扩展名
                // echo $info1->getFilename();

                $policyfileinfo = db("policyfileinfo");

                // 封装插入数据库的信息
                $data = array();
                $data['fileUrl'] = "http://gsdse.xyz/UEBIMP/public/applicationForm/" . $info1->getFilename();

                $result = $policyfileinfo->insert($data);

                if ($result) {
                    $return_data['error_code'] = 0;
                    $return_data['msg'] = '上传成功！';
                    $return_data['saveName'] = $info1->getSaveName();
                    $return_data['fileName'] = $info1->getFilename();
                    $return_data['file'] = $policyFile->getInfo()['name'];
                } else {
                    $return_data["error_code"] = 1;
                    $return_data["msg"] = "信息插入数据库失败";
                }
            } else {
                // 上传失败获取错误信息
                // echo $image1->getError();

                //构造返回数据
                $return_data['error_code'] = 2;
                $return_data['msg'] = "上传失败";
                $return_data['reason'] = $policyFile->getError();
            }
        } else {
            //组装返回数据
            $return_data['error_code'] = 3;
            $return_data['msg'] = '参数缺省，请检查';
        }

        //返回数据
        return json($return_data);
    }
}
